package org.fernando.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import org.fernando.services.PlanificacionDeCursadaGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalPlanificacionDeCursadaParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'Recurso:'", "'.'", "'profesor:'", "'Nombre:'", "'Dedicacion:'", "'puede'", "'de:'", "'hasta:'", "'Simple'", "'Semi'", "'Exclusiva'", "'Materia:'", "'dictada por:'", "'Carga horaria:'", "'Cantidad de dias:'", "'Requisitos:'", "','", "'Aula:'", "'Recursos:'", "'espacio para:'", "'alumnos'", "'Se Dictan:'", "'con'", "'inscriptos'", "'dia:'", "'de'", "'a'", "'se dicta:'", "'en:'", "'Lunes'", "'Martes'", "'Miercoles'", "'Jueves'", "'Viernes'", "'Sabado'"
    };
    public static final int RULE_ID=4;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int T__19=19;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int RULE_STRING=5;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalPlanificacionDeCursadaParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalPlanificacionDeCursadaParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalPlanificacionDeCursadaParser.tokenNames; }
    public String getGrammarFileName() { return "../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g"; }



     	private PlanificacionDeCursadaGrammarAccess grammarAccess;
     	
        public InternalPlanificacionDeCursadaParser(TokenStream input, PlanificacionDeCursadaGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "Asignacion";	
       	}
       	
       	@Override
       	protected PlanificacionDeCursadaGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleAsignacion"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:67:1: entryRuleAsignacion returns [EObject current=null] : iv_ruleAsignacion= ruleAsignacion EOF ;
    public final EObject entryRuleAsignacion() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAsignacion = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:68:2: (iv_ruleAsignacion= ruleAsignacion EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:69:2: iv_ruleAsignacion= ruleAsignacion EOF
            {
             newCompositeNode(grammarAccess.getAsignacionRule()); 
            pushFollow(FOLLOW_ruleAsignacion_in_entryRuleAsignacion75);
            iv_ruleAsignacion=ruleAsignacion();

            state._fsp--;

             current =iv_ruleAsignacion; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAsignacion85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAsignacion"


    // $ANTLR start "ruleAsignacion"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:76:1: ruleAsignacion returns [EObject current=null] : ( ( (lv_profesores_0_0= ruleProfesor ) )* ( (lv_recursos_1_0= ruleRecurso ) )* ( (lv_aulas_2_0= ruleAula ) )* ( (lv_materias_3_0= ruleMateria ) )* ( (lv_planificacion_4_0= rulePlanificacion ) ) ) ;
    public final EObject ruleAsignacion() throws RecognitionException {
        EObject current = null;

        EObject lv_profesores_0_0 = null;

        EObject lv_recursos_1_0 = null;

        EObject lv_aulas_2_0 = null;

        EObject lv_materias_3_0 = null;

        EObject lv_planificacion_4_0 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:79:28: ( ( ( (lv_profesores_0_0= ruleProfesor ) )* ( (lv_recursos_1_0= ruleRecurso ) )* ( (lv_aulas_2_0= ruleAula ) )* ( (lv_materias_3_0= ruleMateria ) )* ( (lv_planificacion_4_0= rulePlanificacion ) ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:80:1: ( ( (lv_profesores_0_0= ruleProfesor ) )* ( (lv_recursos_1_0= ruleRecurso ) )* ( (lv_aulas_2_0= ruleAula ) )* ( (lv_materias_3_0= ruleMateria ) )* ( (lv_planificacion_4_0= rulePlanificacion ) ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:80:1: ( ( (lv_profesores_0_0= ruleProfesor ) )* ( (lv_recursos_1_0= ruleRecurso ) )* ( (lv_aulas_2_0= ruleAula ) )* ( (lv_materias_3_0= ruleMateria ) )* ( (lv_planificacion_4_0= rulePlanificacion ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:80:2: ( (lv_profesores_0_0= ruleProfesor ) )* ( (lv_recursos_1_0= ruleRecurso ) )* ( (lv_aulas_2_0= ruleAula ) )* ( (lv_materias_3_0= ruleMateria ) )* ( (lv_planificacion_4_0= rulePlanificacion ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:80:2: ( (lv_profesores_0_0= ruleProfesor ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==13) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:81:1: (lv_profesores_0_0= ruleProfesor )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:81:1: (lv_profesores_0_0= ruleProfesor )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:82:3: lv_profesores_0_0= ruleProfesor
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAsignacionAccess().getProfesoresProfesorParserRuleCall_0_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleProfesor_in_ruleAsignacion131);
            	    lv_profesores_0_0=ruleProfesor();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAsignacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"profesores",
            	            		lv_profesores_0_0, 
            	            		"Profesor");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:98:3: ( (lv_recursos_1_0= ruleRecurso ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==11) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:99:1: (lv_recursos_1_0= ruleRecurso )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:99:1: (lv_recursos_1_0= ruleRecurso )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:100:3: lv_recursos_1_0= ruleRecurso
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAsignacionAccess().getRecursosRecursoParserRuleCall_1_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleRecurso_in_ruleAsignacion153);
            	    lv_recursos_1_0=ruleRecurso();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAsignacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"recursos",
            	            		lv_recursos_1_0, 
            	            		"Recurso");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:116:3: ( (lv_aulas_2_0= ruleAula ) )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==28) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:117:1: (lv_aulas_2_0= ruleAula )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:117:1: (lv_aulas_2_0= ruleAula )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:118:3: lv_aulas_2_0= ruleAula
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAsignacionAccess().getAulasAulaParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleAula_in_ruleAsignacion175);
            	    lv_aulas_2_0=ruleAula();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAsignacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"aulas",
            	            		lv_aulas_2_0, 
            	            		"Aula");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:134:3: ( (lv_materias_3_0= ruleMateria ) )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==22) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:135:1: (lv_materias_3_0= ruleMateria )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:135:1: (lv_materias_3_0= ruleMateria )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:136:3: lv_materias_3_0= ruleMateria
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAsignacionAccess().getMateriasMateriaParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleMateria_in_ruleAsignacion197);
            	    lv_materias_3_0=ruleMateria();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAsignacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"materias",
            	            		lv_materias_3_0, 
            	            		"Materia");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:152:3: ( (lv_planificacion_4_0= rulePlanificacion ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:153:1: (lv_planificacion_4_0= rulePlanificacion )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:153:1: (lv_planificacion_4_0= rulePlanificacion )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:154:3: lv_planificacion_4_0= rulePlanificacion
            {
             
            	        newCompositeNode(grammarAccess.getAsignacionAccess().getPlanificacionPlanificacionParserRuleCall_4_0()); 
            	    
            pushFollow(FOLLOW_rulePlanificacion_in_ruleAsignacion219);
            lv_planificacion_4_0=rulePlanificacion();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getAsignacionRule());
            	        }
                   		set(
                   			current, 
                   			"planificacion",
                    		lv_planificacion_4_0, 
                    		"Planificacion");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAsignacion"


    // $ANTLR start "entryRuleRecurso"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:178:1: entryRuleRecurso returns [EObject current=null] : iv_ruleRecurso= ruleRecurso EOF ;
    public final EObject entryRuleRecurso() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRecurso = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:179:2: (iv_ruleRecurso= ruleRecurso EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:180:2: iv_ruleRecurso= ruleRecurso EOF
            {
             newCompositeNode(grammarAccess.getRecursoRule()); 
            pushFollow(FOLLOW_ruleRecurso_in_entryRuleRecurso255);
            iv_ruleRecurso=ruleRecurso();

            state._fsp--;

             current =iv_ruleRecurso; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRecurso265); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRecurso"


    // $ANTLR start "ruleRecurso"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:187:1: ruleRecurso returns [EObject current=null] : (otherlv_0= 'Recurso:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' ) ;
    public final EObject ruleRecurso() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:190:28: ( (otherlv_0= 'Recurso:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:191:1: (otherlv_0= 'Recurso:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:191:1: (otherlv_0= 'Recurso:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:191:3: otherlv_0= 'Recurso:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.'
            {
            otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleRecurso302); 

                	newLeafNode(otherlv_0, grammarAccess.getRecursoAccess().getRecursoKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:195:1: ( (lv_name_1_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:196:1: (lv_name_1_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:196:1: (lv_name_1_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:197:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRecurso319); 

            			newLeafNode(lv_name_1_0, grammarAccess.getRecursoAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRecursoRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,12,FOLLOW_12_in_ruleRecurso336); 

                	newLeafNode(otherlv_2, grammarAccess.getRecursoAccess().getFullStopKeyword_2());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRecurso"


    // $ANTLR start "entryRuleProfesor"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:225:1: entryRuleProfesor returns [EObject current=null] : iv_ruleProfesor= ruleProfesor EOF ;
    public final EObject entryRuleProfesor() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleProfesor = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:226:2: (iv_ruleProfesor= ruleProfesor EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:227:2: iv_ruleProfesor= ruleProfesor EOF
            {
             newCompositeNode(grammarAccess.getProfesorRule()); 
            pushFollow(FOLLOW_ruleProfesor_in_entryRuleProfesor372);
            iv_ruleProfesor=ruleProfesor();

            state._fsp--;

             current =iv_ruleProfesor; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleProfesor382); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleProfesor"


    // $ANTLR start "ruleProfesor"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:234:1: ruleProfesor returns [EObject current=null] : (otherlv_0= 'profesor:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Nombre:' ( (lv_nombre_3_0= RULE_STRING ) ) otherlv_4= 'Dedicacion:' ( (lv_tipo_5_0= ruleDEDICACION ) ) ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )* otherlv_7= '.' ) ;
    public final EObject ruleProfesor() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_nombre_3_0=null;
        Token otherlv_4=null;
        Token otherlv_7=null;
        EObject lv_tipo_5_0 = null;

        EObject lv_disponibilidades_6_0 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:237:28: ( (otherlv_0= 'profesor:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Nombre:' ( (lv_nombre_3_0= RULE_STRING ) ) otherlv_4= 'Dedicacion:' ( (lv_tipo_5_0= ruleDEDICACION ) ) ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )* otherlv_7= '.' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:238:1: (otherlv_0= 'profesor:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Nombre:' ( (lv_nombre_3_0= RULE_STRING ) ) otherlv_4= 'Dedicacion:' ( (lv_tipo_5_0= ruleDEDICACION ) ) ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )* otherlv_7= '.' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:238:1: (otherlv_0= 'profesor:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Nombre:' ( (lv_nombre_3_0= RULE_STRING ) ) otherlv_4= 'Dedicacion:' ( (lv_tipo_5_0= ruleDEDICACION ) ) ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )* otherlv_7= '.' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:238:3: otherlv_0= 'profesor:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Nombre:' ( (lv_nombre_3_0= RULE_STRING ) ) otherlv_4= 'Dedicacion:' ( (lv_tipo_5_0= ruleDEDICACION ) ) ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )* otherlv_7= '.'
            {
            otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleProfesor419); 

                	newLeafNode(otherlv_0, grammarAccess.getProfesorAccess().getProfesorKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:242:1: ( (lv_name_1_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:243:1: (lv_name_1_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:243:1: (lv_name_1_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:244:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleProfesor436); 

            			newLeafNode(lv_name_1_0, grammarAccess.getProfesorAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getProfesorRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleProfesor453); 

                	newLeafNode(otherlv_2, grammarAccess.getProfesorAccess().getNombreKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:264:1: ( (lv_nombre_3_0= RULE_STRING ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:265:1: (lv_nombre_3_0= RULE_STRING )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:265:1: (lv_nombre_3_0= RULE_STRING )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:266:3: lv_nombre_3_0= RULE_STRING
            {
            lv_nombre_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleProfesor470); 

            			newLeafNode(lv_nombre_3_0, grammarAccess.getProfesorAccess().getNombreSTRINGTerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getProfesorRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"nombre",
                    		lv_nombre_3_0, 
                    		"STRING");
            	    

            }


            }

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleProfesor487); 

                	newLeafNode(otherlv_4, grammarAccess.getProfesorAccess().getDedicacionKeyword_4());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:286:1: ( (lv_tipo_5_0= ruleDEDICACION ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:287:1: (lv_tipo_5_0= ruleDEDICACION )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:287:1: (lv_tipo_5_0= ruleDEDICACION )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:288:3: lv_tipo_5_0= ruleDEDICACION
            {
             
            	        newCompositeNode(grammarAccess.getProfesorAccess().getTipoDEDICACIONParserRuleCall_5_0()); 
            	    
            pushFollow(FOLLOW_ruleDEDICACION_in_ruleProfesor508);
            lv_tipo_5_0=ruleDEDICACION();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getProfesorRule());
            	        }
                   		set(
                   			current, 
                   			"tipo",
                    		lv_tipo_5_0, 
                    		"DEDICACION");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:304:2: ( (lv_disponibilidades_6_0= ruleDisponibilidadProf ) )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==16) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:305:1: (lv_disponibilidades_6_0= ruleDisponibilidadProf )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:305:1: (lv_disponibilidades_6_0= ruleDisponibilidadProf )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:306:3: lv_disponibilidades_6_0= ruleDisponibilidadProf
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getProfesorAccess().getDisponibilidadesDisponibilidadProfParserRuleCall_6_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDisponibilidadProf_in_ruleProfesor529);
            	    lv_disponibilidades_6_0=ruleDisponibilidadProf();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getProfesorRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"disponibilidades",
            	            		lv_disponibilidades_6_0, 
            	            		"DisponibilidadProf");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

            otherlv_7=(Token)match(input,12,FOLLOW_12_in_ruleProfesor542); 

                	newLeafNode(otherlv_7, grammarAccess.getProfesorAccess().getFullStopKeyword_7());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleProfesor"


    // $ANTLR start "entryRuleDisponibilidadProf"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:334:1: entryRuleDisponibilidadProf returns [EObject current=null] : iv_ruleDisponibilidadProf= ruleDisponibilidadProf EOF ;
    public final EObject entryRuleDisponibilidadProf() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDisponibilidadProf = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:335:2: (iv_ruleDisponibilidadProf= ruleDisponibilidadProf EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:336:2: iv_ruleDisponibilidadProf= ruleDisponibilidadProf EOF
            {
             newCompositeNode(grammarAccess.getDisponibilidadProfRule()); 
            pushFollow(FOLLOW_ruleDisponibilidadProf_in_entryRuleDisponibilidadProf578);
            iv_ruleDisponibilidadProf=ruleDisponibilidadProf();

            state._fsp--;

             current =iv_ruleDisponibilidadProf; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDisponibilidadProf588); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDisponibilidadProf"


    // $ANTLR start "ruleDisponibilidadProf"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:343:1: ruleDisponibilidadProf returns [EObject current=null] : (otherlv_0= 'puede' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de:' ( (lv_horaInicial_3_0= RULE_INT ) ) otherlv_4= 'hasta:' ( (lv_horaFinal_5_0= RULE_INT ) ) ) ;
    public final EObject ruleDisponibilidadProf() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token lv_horaInicial_3_0=null;
        Token otherlv_4=null;
        Token lv_horaFinal_5_0=null;
        EObject lv_dia_1_0 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:346:28: ( (otherlv_0= 'puede' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de:' ( (lv_horaInicial_3_0= RULE_INT ) ) otherlv_4= 'hasta:' ( (lv_horaFinal_5_0= RULE_INT ) ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:347:1: (otherlv_0= 'puede' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de:' ( (lv_horaInicial_3_0= RULE_INT ) ) otherlv_4= 'hasta:' ( (lv_horaFinal_5_0= RULE_INT ) ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:347:1: (otherlv_0= 'puede' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de:' ( (lv_horaInicial_3_0= RULE_INT ) ) otherlv_4= 'hasta:' ( (lv_horaFinal_5_0= RULE_INT ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:347:3: otherlv_0= 'puede' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de:' ( (lv_horaInicial_3_0= RULE_INT ) ) otherlv_4= 'hasta:' ( (lv_horaFinal_5_0= RULE_INT ) )
            {
            otherlv_0=(Token)match(input,16,FOLLOW_16_in_ruleDisponibilidadProf625); 

                	newLeafNode(otherlv_0, grammarAccess.getDisponibilidadProfAccess().getPuedeKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:351:1: ( (lv_dia_1_0= ruleDIA ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:352:1: (lv_dia_1_0= ruleDIA )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:352:1: (lv_dia_1_0= ruleDIA )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:353:3: lv_dia_1_0= ruleDIA
            {
             
            	        newCompositeNode(grammarAccess.getDisponibilidadProfAccess().getDiaDIAParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleDIA_in_ruleDisponibilidadProf646);
            lv_dia_1_0=ruleDIA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getDisponibilidadProfRule());
            	        }
                   		set(
                   			current, 
                   			"dia",
                    		lv_dia_1_0, 
                    		"DIA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_2=(Token)match(input,17,FOLLOW_17_in_ruleDisponibilidadProf658); 

                	newLeafNode(otherlv_2, grammarAccess.getDisponibilidadProfAccess().getDeKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:373:1: ( (lv_horaInicial_3_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:374:1: (lv_horaInicial_3_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:374:1: (lv_horaInicial_3_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:375:3: lv_horaInicial_3_0= RULE_INT
            {
            lv_horaInicial_3_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDisponibilidadProf675); 

            			newLeafNode(lv_horaInicial_3_0, grammarAccess.getDisponibilidadProfAccess().getHoraInicialINTTerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDisponibilidadProfRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaInicial",
                    		lv_horaInicial_3_0, 
                    		"INT");
            	    

            }


            }

            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleDisponibilidadProf692); 

                	newLeafNode(otherlv_4, grammarAccess.getDisponibilidadProfAccess().getHastaKeyword_4());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:395:1: ( (lv_horaFinal_5_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:396:1: (lv_horaFinal_5_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:396:1: (lv_horaFinal_5_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:397:3: lv_horaFinal_5_0= RULE_INT
            {
            lv_horaFinal_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDisponibilidadProf709); 

            			newLeafNode(lv_horaFinal_5_0, grammarAccess.getDisponibilidadProfAccess().getHoraFinalINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDisponibilidadProfRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaFinal",
                    		lv_horaFinal_5_0, 
                    		"INT");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDisponibilidadProf"


    // $ANTLR start "entryRuleDEDICACION"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:421:1: entryRuleDEDICACION returns [EObject current=null] : iv_ruleDEDICACION= ruleDEDICACION EOF ;
    public final EObject entryRuleDEDICACION() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDEDICACION = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:422:2: (iv_ruleDEDICACION= ruleDEDICACION EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:423:2: iv_ruleDEDICACION= ruleDEDICACION EOF
            {
             newCompositeNode(grammarAccess.getDEDICACIONRule()); 
            pushFollow(FOLLOW_ruleDEDICACION_in_entryRuleDEDICACION750);
            iv_ruleDEDICACION=ruleDEDICACION();

            state._fsp--;

             current =iv_ruleDEDICACION; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDEDICACION760); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDEDICACION"


    // $ANTLR start "ruleDEDICACION"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:430:1: ruleDEDICACION returns [EObject current=null] : (this_Simple_0= ruleSimple | this_Semi_1= ruleSemi | this_Exclusiva_2= ruleExclusiva ) ;
    public final EObject ruleDEDICACION() throws RecognitionException {
        EObject current = null;

        EObject this_Simple_0 = null;

        EObject this_Semi_1 = null;

        EObject this_Exclusiva_2 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:433:28: ( (this_Simple_0= ruleSimple | this_Semi_1= ruleSemi | this_Exclusiva_2= ruleExclusiva ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:434:1: (this_Simple_0= ruleSimple | this_Semi_1= ruleSemi | this_Exclusiva_2= ruleExclusiva )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:434:1: (this_Simple_0= ruleSimple | this_Semi_1= ruleSemi | this_Exclusiva_2= ruleExclusiva )
            int alt6=3;
            switch ( input.LA(1) ) {
            case 19:
                {
                alt6=1;
                }
                break;
            case 20:
                {
                alt6=2;
                }
                break;
            case 21:
                {
                alt6=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:435:5: this_Simple_0= ruleSimple
                    {
                     
                            newCompositeNode(grammarAccess.getDEDICACIONAccess().getSimpleParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSimple_in_ruleDEDICACION807);
                    this_Simple_0=ruleSimple();

                    state._fsp--;

                     
                            current = this_Simple_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:445:5: this_Semi_1= ruleSemi
                    {
                     
                            newCompositeNode(grammarAccess.getDEDICACIONAccess().getSemiParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSemi_in_ruleDEDICACION834);
                    this_Semi_1=ruleSemi();

                    state._fsp--;

                     
                            current = this_Semi_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:455:5: this_Exclusiva_2= ruleExclusiva
                    {
                     
                            newCompositeNode(grammarAccess.getDEDICACIONAccess().getExclusivaParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleExclusiva_in_ruleDEDICACION861);
                    this_Exclusiva_2=ruleExclusiva();

                    state._fsp--;

                     
                            current = this_Exclusiva_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDEDICACION"


    // $ANTLR start "entryRuleSimple"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:471:1: entryRuleSimple returns [EObject current=null] : iv_ruleSimple= ruleSimple EOF ;
    public final EObject entryRuleSimple() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSimple = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:472:2: (iv_ruleSimple= ruleSimple EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:473:2: iv_ruleSimple= ruleSimple EOF
            {
             newCompositeNode(grammarAccess.getSimpleRule()); 
            pushFollow(FOLLOW_ruleSimple_in_entryRuleSimple896);
            iv_ruleSimple=ruleSimple();

            state._fsp--;

             current =iv_ruleSimple; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSimple906); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSimple"


    // $ANTLR start "ruleSimple"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:480:1: ruleSimple returns [EObject current=null] : ( (lv_ID_0_0= 'Simple' ) ) ;
    public final EObject ruleSimple() throws RecognitionException {
        EObject current = null;

        Token lv_ID_0_0=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:483:28: ( ( (lv_ID_0_0= 'Simple' ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:484:1: ( (lv_ID_0_0= 'Simple' ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:484:1: ( (lv_ID_0_0= 'Simple' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:485:1: (lv_ID_0_0= 'Simple' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:485:1: (lv_ID_0_0= 'Simple' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:486:3: lv_ID_0_0= 'Simple'
            {
            lv_ID_0_0=(Token)match(input,19,FOLLOW_19_in_ruleSimple948); 

                    newLeafNode(lv_ID_0_0, grammarAccess.getSimpleAccess().getIDSimpleKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSimpleRule());
            	        }
                   		setWithLastConsumed(current, "ID", lv_ID_0_0, "Simple");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSimple"


    // $ANTLR start "entryRuleSemi"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:507:1: entryRuleSemi returns [EObject current=null] : iv_ruleSemi= ruleSemi EOF ;
    public final EObject entryRuleSemi() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSemi = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:508:2: (iv_ruleSemi= ruleSemi EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:509:2: iv_ruleSemi= ruleSemi EOF
            {
             newCompositeNode(grammarAccess.getSemiRule()); 
            pushFollow(FOLLOW_ruleSemi_in_entryRuleSemi996);
            iv_ruleSemi=ruleSemi();

            state._fsp--;

             current =iv_ruleSemi; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSemi1006); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSemi"


    // $ANTLR start "ruleSemi"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:516:1: ruleSemi returns [EObject current=null] : ( (lv_ID_0_0= 'Semi' ) ) ;
    public final EObject ruleSemi() throws RecognitionException {
        EObject current = null;

        Token lv_ID_0_0=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:519:28: ( ( (lv_ID_0_0= 'Semi' ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:520:1: ( (lv_ID_0_0= 'Semi' ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:520:1: ( (lv_ID_0_0= 'Semi' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:521:1: (lv_ID_0_0= 'Semi' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:521:1: (lv_ID_0_0= 'Semi' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:522:3: lv_ID_0_0= 'Semi'
            {
            lv_ID_0_0=(Token)match(input,20,FOLLOW_20_in_ruleSemi1048); 

                    newLeafNode(lv_ID_0_0, grammarAccess.getSemiAccess().getIDSemiKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSemiRule());
            	        }
                   		setWithLastConsumed(current, "ID", lv_ID_0_0, "Semi");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSemi"


    // $ANTLR start "entryRuleExclusiva"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:543:1: entryRuleExclusiva returns [EObject current=null] : iv_ruleExclusiva= ruleExclusiva EOF ;
    public final EObject entryRuleExclusiva() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleExclusiva = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:544:2: (iv_ruleExclusiva= ruleExclusiva EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:545:2: iv_ruleExclusiva= ruleExclusiva EOF
            {
             newCompositeNode(grammarAccess.getExclusivaRule()); 
            pushFollow(FOLLOW_ruleExclusiva_in_entryRuleExclusiva1096);
            iv_ruleExclusiva=ruleExclusiva();

            state._fsp--;

             current =iv_ruleExclusiva; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleExclusiva1106); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleExclusiva"


    // $ANTLR start "ruleExclusiva"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:552:1: ruleExclusiva returns [EObject current=null] : ( (lv_ID_0_0= 'Exclusiva' ) ) ;
    public final EObject ruleExclusiva() throws RecognitionException {
        EObject current = null;

        Token lv_ID_0_0=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:555:28: ( ( (lv_ID_0_0= 'Exclusiva' ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:556:1: ( (lv_ID_0_0= 'Exclusiva' ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:556:1: ( (lv_ID_0_0= 'Exclusiva' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:557:1: (lv_ID_0_0= 'Exclusiva' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:557:1: (lv_ID_0_0= 'Exclusiva' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:558:3: lv_ID_0_0= 'Exclusiva'
            {
            lv_ID_0_0=(Token)match(input,21,FOLLOW_21_in_ruleExclusiva1148); 

                    newLeafNode(lv_ID_0_0, grammarAccess.getExclusivaAccess().getIDExclusivaKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getExclusivaRule());
            	        }
                   		setWithLastConsumed(current, "ID", lv_ID_0_0, "Exclusiva");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleExclusiva"


    // $ANTLR start "entryRuleMateria"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:579:1: entryRuleMateria returns [EObject current=null] : iv_ruleMateria= ruleMateria EOF ;
    public final EObject entryRuleMateria() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMateria = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:580:2: (iv_ruleMateria= ruleMateria EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:581:2: iv_ruleMateria= ruleMateria EOF
            {
             newCompositeNode(grammarAccess.getMateriaRule()); 
            pushFollow(FOLLOW_ruleMateria_in_entryRuleMateria1196);
            iv_ruleMateria=ruleMateria();

            state._fsp--;

             current =iv_ruleMateria; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMateria1206); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMateria"


    // $ANTLR start "ruleMateria"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:588:1: ruleMateria returns [EObject current=null] : (otherlv_0= 'Materia:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dictada por:' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'Carga horaria:' ( (lv_cargaHoraria_5_0= RULE_INT ) ) otherlv_6= 'Cantidad de dias:' ( (lv_cantDias_7_0= RULE_INT ) ) (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )? otherlv_12= '.' ) ;
    public final EObject ruleMateria() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token lv_cargaHoraria_5_0=null;
        Token otherlv_6=null;
        Token lv_cantDias_7_0=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        Token otherlv_11=null;
        Token otherlv_12=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:591:28: ( (otherlv_0= 'Materia:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dictada por:' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'Carga horaria:' ( (lv_cargaHoraria_5_0= RULE_INT ) ) otherlv_6= 'Cantidad de dias:' ( (lv_cantDias_7_0= RULE_INT ) ) (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )? otherlv_12= '.' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:592:1: (otherlv_0= 'Materia:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dictada por:' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'Carga horaria:' ( (lv_cargaHoraria_5_0= RULE_INT ) ) otherlv_6= 'Cantidad de dias:' ( (lv_cantDias_7_0= RULE_INT ) ) (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )? otherlv_12= '.' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:592:1: (otherlv_0= 'Materia:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dictada por:' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'Carga horaria:' ( (lv_cargaHoraria_5_0= RULE_INT ) ) otherlv_6= 'Cantidad de dias:' ( (lv_cantDias_7_0= RULE_INT ) ) (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )? otherlv_12= '.' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:592:3: otherlv_0= 'Materia:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dictada por:' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'Carga horaria:' ( (lv_cargaHoraria_5_0= RULE_INT ) ) otherlv_6= 'Cantidad de dias:' ( (lv_cantDias_7_0= RULE_INT ) ) (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )? otherlv_12= '.'
            {
            otherlv_0=(Token)match(input,22,FOLLOW_22_in_ruleMateria1243); 

                	newLeafNode(otherlv_0, grammarAccess.getMateriaAccess().getMateriaKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:596:1: ( (lv_name_1_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:597:1: (lv_name_1_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:597:1: (lv_name_1_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:598:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateria1260); 

            			newLeafNode(lv_name_1_0, grammarAccess.getMateriaAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,23,FOLLOW_23_in_ruleMateria1277); 

                	newLeafNode(otherlv_2, grammarAccess.getMateriaAccess().getDictadaPorKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:618:1: ( (otherlv_3= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:619:1: (otherlv_3= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:619:1: (otherlv_3= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:620:3: otherlv_3= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                    
            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateria1297); 

            		newLeafNode(otherlv_3, grammarAccess.getMateriaAccess().getProfesorProfesorCrossReference_3_0()); 
            	

            }


            }

            otherlv_4=(Token)match(input,24,FOLLOW_24_in_ruleMateria1309); 

                	newLeafNode(otherlv_4, grammarAccess.getMateriaAccess().getCargaHorariaKeyword_4());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:635:1: ( (lv_cargaHoraria_5_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:636:1: (lv_cargaHoraria_5_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:636:1: (lv_cargaHoraria_5_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:637:3: lv_cargaHoraria_5_0= RULE_INT
            {
            lv_cargaHoraria_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMateria1326); 

            			newLeafNode(lv_cargaHoraria_5_0, grammarAccess.getMateriaAccess().getCargaHorariaINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"cargaHoraria",
                    		lv_cargaHoraria_5_0, 
                    		"INT");
            	    

            }


            }

            otherlv_6=(Token)match(input,25,FOLLOW_25_in_ruleMateria1343); 

                	newLeafNode(otherlv_6, grammarAccess.getMateriaAccess().getCantidadDeDiasKeyword_6());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:657:1: ( (lv_cantDias_7_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:658:1: (lv_cantDias_7_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:658:1: (lv_cantDias_7_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:659:3: lv_cantDias_7_0= RULE_INT
            {
            lv_cantDias_7_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMateria1360); 

            			newLeafNode(lv_cantDias_7_0, grammarAccess.getMateriaAccess().getCantDiasINTTerminalRuleCall_7_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"cantDias",
                    		lv_cantDias_7_0, 
                    		"INT");
            	    

            }


            }

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:675:2: (otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )* )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==26) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:675:4: otherlv_8= 'Requisitos:' ( (otherlv_9= RULE_ID ) ) (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )*
                    {
                    otherlv_8=(Token)match(input,26,FOLLOW_26_in_ruleMateria1378); 

                        	newLeafNode(otherlv_8, grammarAccess.getMateriaAccess().getRequisitosKeyword_8_0());
                        
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:679:1: ( (otherlv_9= RULE_ID ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:680:1: (otherlv_9= RULE_ID )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:680:1: (otherlv_9= RULE_ID )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:681:3: otherlv_9= RULE_ID
                    {

                    			if (current==null) {
                    	            current = createModelElement(grammarAccess.getMateriaRule());
                    	        }
                            
                    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateria1398); 

                    		newLeafNode(otherlv_9, grammarAccess.getMateriaAccess().getRecursosRecursoCrossReference_8_1_0()); 
                    	

                    }


                    }

                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:692:2: (otherlv_10= ',' ( (otherlv_11= RULE_ID ) ) )*
                    loop7:
                    do {
                        int alt7=2;
                        int LA7_0 = input.LA(1);

                        if ( (LA7_0==27) ) {
                            alt7=1;
                        }


                        switch (alt7) {
                    	case 1 :
                    	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:692:4: otherlv_10= ',' ( (otherlv_11= RULE_ID ) )
                    	    {
                    	    otherlv_10=(Token)match(input,27,FOLLOW_27_in_ruleMateria1411); 

                    	        	newLeafNode(otherlv_10, grammarAccess.getMateriaAccess().getCommaKeyword_8_2_0());
                    	        
                    	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:696:1: ( (otherlv_11= RULE_ID ) )
                    	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:697:1: (otherlv_11= RULE_ID )
                    	    {
                    	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:697:1: (otherlv_11= RULE_ID )
                    	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:698:3: otherlv_11= RULE_ID
                    	    {

                    	    			if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getMateriaRule());
                    	    	        }
                    	            
                    	    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateria1431); 

                    	    		newLeafNode(otherlv_11, grammarAccess.getMateriaAccess().getRecursosRecursoCrossReference_8_2_1_0()); 
                    	    	

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop7;
                        }
                    } while (true);


                    }
                    break;

            }

            otherlv_12=(Token)match(input,12,FOLLOW_12_in_ruleMateria1447); 

                	newLeafNode(otherlv_12, grammarAccess.getMateriaAccess().getFullStopKeyword_9());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMateria"


    // $ANTLR start "entryRuleAula"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:721:1: entryRuleAula returns [EObject current=null] : iv_ruleAula= ruleAula EOF ;
    public final EObject entryRuleAula() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAula = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:722:2: (iv_ruleAula= ruleAula EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:723:2: iv_ruleAula= ruleAula EOF
            {
             newCompositeNode(grammarAccess.getAulaRule()); 
            pushFollow(FOLLOW_ruleAula_in_entryRuleAula1483);
            iv_ruleAula=ruleAula();

            state._fsp--;

             current =iv_ruleAula; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAula1493); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAula"


    // $ANTLR start "ruleAula"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:730:1: ruleAula returns [EObject current=null] : (otherlv_0= 'Aula:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Recursos:' ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )* otherlv_5= 'espacio para:' ( (lv_cantAlumnos_6_0= RULE_INT ) ) otherlv_7= 'alumnos' otherlv_8= '.' ) ;
    public final EObject ruleAula() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token lv_cantAlumnos_6_0=null;
        Token otherlv_7=null;
        Token otherlv_8=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:733:28: ( (otherlv_0= 'Aula:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Recursos:' ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )* otherlv_5= 'espacio para:' ( (lv_cantAlumnos_6_0= RULE_INT ) ) otherlv_7= 'alumnos' otherlv_8= '.' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:734:1: (otherlv_0= 'Aula:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Recursos:' ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )* otherlv_5= 'espacio para:' ( (lv_cantAlumnos_6_0= RULE_INT ) ) otherlv_7= 'alumnos' otherlv_8= '.' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:734:1: (otherlv_0= 'Aula:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Recursos:' ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )* otherlv_5= 'espacio para:' ( (lv_cantAlumnos_6_0= RULE_INT ) ) otherlv_7= 'alumnos' otherlv_8= '.' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:734:3: otherlv_0= 'Aula:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Recursos:' ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )* otherlv_5= 'espacio para:' ( (lv_cantAlumnos_6_0= RULE_INT ) ) otherlv_7= 'alumnos' otherlv_8= '.'
            {
            otherlv_0=(Token)match(input,28,FOLLOW_28_in_ruleAula1530); 

                	newLeafNode(otherlv_0, grammarAccess.getAulaAccess().getAulaKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:738:1: ( (lv_name_1_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:739:1: (lv_name_1_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:739:1: (lv_name_1_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:740:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAula1547); 

            			newLeafNode(lv_name_1_0, grammarAccess.getAulaAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAulaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,29,FOLLOW_29_in_ruleAula1564); 

                	newLeafNode(otherlv_2, grammarAccess.getAulaAccess().getRecursosKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:760:1: ( ( (otherlv_3= RULE_ID ) ) otherlv_4= ',' )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==RULE_ID) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:760:2: ( (otherlv_3= RULE_ID ) ) otherlv_4= ','
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:760:2: ( (otherlv_3= RULE_ID ) )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:761:1: (otherlv_3= RULE_ID )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:761:1: (otherlv_3= RULE_ID )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:762:3: otherlv_3= RULE_ID
            	    {

            	    			if (current==null) {
            	    	            current = createModelElement(grammarAccess.getAulaRule());
            	    	        }
            	            
            	    otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAula1585); 

            	    		newLeafNode(otherlv_3, grammarAccess.getAulaAccess().getRecursosRecursoCrossReference_3_0_0()); 
            	    	

            	    }


            	    }

            	    otherlv_4=(Token)match(input,27,FOLLOW_27_in_ruleAula1597); 

            	        	newLeafNode(otherlv_4, grammarAccess.getAulaAccess().getCommaKeyword_3_1());
            	        

            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

            otherlv_5=(Token)match(input,30,FOLLOW_30_in_ruleAula1611); 

                	newLeafNode(otherlv_5, grammarAccess.getAulaAccess().getEspacioParaKeyword_4());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:781:1: ( (lv_cantAlumnos_6_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:782:1: (lv_cantAlumnos_6_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:782:1: (lv_cantAlumnos_6_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:783:3: lv_cantAlumnos_6_0= RULE_INT
            {
            lv_cantAlumnos_6_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleAula1628); 

            			newLeafNode(lv_cantAlumnos_6_0, grammarAccess.getAulaAccess().getCantAlumnosINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAulaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"cantAlumnos",
                    		lv_cantAlumnos_6_0, 
                    		"INT");
            	    

            }


            }

            otherlv_7=(Token)match(input,31,FOLLOW_31_in_ruleAula1645); 

                	newLeafNode(otherlv_7, grammarAccess.getAulaAccess().getAlumnosKeyword_6());
                
            otherlv_8=(Token)match(input,12,FOLLOW_12_in_ruleAula1657); 

                	newLeafNode(otherlv_8, grammarAccess.getAulaAccess().getFullStopKeyword_7());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAula"


    // $ANTLR start "entryRulePlanificacion"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:815:1: entryRulePlanificacion returns [EObject current=null] : iv_rulePlanificacion= rulePlanificacion EOF ;
    public final EObject entryRulePlanificacion() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlanificacion = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:816:2: (iv_rulePlanificacion= rulePlanificacion EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:817:2: iv_rulePlanificacion= rulePlanificacion EOF
            {
             newCompositeNode(grammarAccess.getPlanificacionRule()); 
            pushFollow(FOLLOW_rulePlanificacion_in_entryRulePlanificacion1693);
            iv_rulePlanificacion=rulePlanificacion();

            state._fsp--;

             current =iv_rulePlanificacion; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlanificacion1703); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlanificacion"


    // $ANTLR start "rulePlanificacion"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:824:1: rulePlanificacion returns [EObject current=null] : (otherlv_0= 'Nombre:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Se Dictan:' ( (lv_materias_3_0= ruleMateriaAsig ) )* ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )* otherlv_5= '.' ) ;
    public final EObject rulePlanificacion() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_5=null;
        EObject lv_materias_3_0 = null;

        EObject lv_diasDelaSemana_4_0 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:827:28: ( (otherlv_0= 'Nombre:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Se Dictan:' ( (lv_materias_3_0= ruleMateriaAsig ) )* ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )* otherlv_5= '.' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:828:1: (otherlv_0= 'Nombre:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Se Dictan:' ( (lv_materias_3_0= ruleMateriaAsig ) )* ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )* otherlv_5= '.' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:828:1: (otherlv_0= 'Nombre:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Se Dictan:' ( (lv_materias_3_0= ruleMateriaAsig ) )* ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )* otherlv_5= '.' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:828:3: otherlv_0= 'Nombre:' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'Se Dictan:' ( (lv_materias_3_0= ruleMateriaAsig ) )* ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )* otherlv_5= '.'
            {
            otherlv_0=(Token)match(input,14,FOLLOW_14_in_rulePlanificacion1740); 

                	newLeafNode(otherlv_0, grammarAccess.getPlanificacionAccess().getNombreKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:832:1: ( (lv_name_1_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:833:1: (lv_name_1_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:833:1: (lv_name_1_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:834:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePlanificacion1757); 

            			newLeafNode(lv_name_1_0, grammarAccess.getPlanificacionAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPlanificacionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,32,FOLLOW_32_in_rulePlanificacion1774); 

                	newLeafNode(otherlv_2, grammarAccess.getPlanificacionAccess().getSeDictanKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:854:1: ( (lv_materias_3_0= ruleMateriaAsig ) )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==RULE_ID) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:855:1: (lv_materias_3_0= ruleMateriaAsig )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:855:1: (lv_materias_3_0= ruleMateriaAsig )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:856:3: lv_materias_3_0= ruleMateriaAsig
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPlanificacionAccess().getMateriasMateriaAsigParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleMateriaAsig_in_rulePlanificacion1795);
            	    lv_materias_3_0=ruleMateriaAsig();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPlanificacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"materias",
            	            		lv_materias_3_0, 
            	            		"MateriaAsig");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:872:3: ( (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana ) )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==35) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:873:1: (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana )
            	    {
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:873:1: (lv_diasDelaSemana_4_0= ruleDiaDeLaSemana )
            	    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:874:3: lv_diasDelaSemana_4_0= ruleDiaDeLaSemana
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPlanificacionAccess().getDiasDelaSemanaDiaDeLaSemanaParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDiaDeLaSemana_in_rulePlanificacion1817);
            	    lv_diasDelaSemana_4_0=ruleDiaDeLaSemana();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPlanificacionRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"diasDelaSemana",
            	            		lv_diasDelaSemana_4_0, 
            	            		"DiaDeLaSemana");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

            otherlv_5=(Token)match(input,12,FOLLOW_12_in_rulePlanificacion1830); 

                	newLeafNode(otherlv_5, grammarAccess.getPlanificacionAccess().getFullStopKeyword_5());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlanificacion"


    // $ANTLR start "entryRuleMateriaAsig"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:902:1: entryRuleMateriaAsig returns [EObject current=null] : iv_ruleMateriaAsig= ruleMateriaAsig EOF ;
    public final EObject entryRuleMateriaAsig() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMateriaAsig = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:903:2: (iv_ruleMateriaAsig= ruleMateriaAsig EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:904:2: iv_ruleMateriaAsig= ruleMateriaAsig EOF
            {
             newCompositeNode(grammarAccess.getMateriaAsigRule()); 
            pushFollow(FOLLOW_ruleMateriaAsig_in_entryRuleMateriaAsig1866);
            iv_ruleMateriaAsig=ruleMateriaAsig();

            state._fsp--;

             current =iv_ruleMateriaAsig; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMateriaAsig1876); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMateriaAsig"


    // $ANTLR start "ruleMateriaAsig"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:911:1: ruleMateriaAsig returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= 'con' ( (lv_inscriptos_2_0= RULE_INT ) ) otherlv_3= 'inscriptos' ) ;
    public final EObject ruleMateriaAsig() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token lv_inscriptos_2_0=null;
        Token otherlv_3=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:914:28: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= 'con' ( (lv_inscriptos_2_0= RULE_INT ) ) otherlv_3= 'inscriptos' ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:915:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= 'con' ( (lv_inscriptos_2_0= RULE_INT ) ) otherlv_3= 'inscriptos' )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:915:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= 'con' ( (lv_inscriptos_2_0= RULE_INT ) ) otherlv_3= 'inscriptos' )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:915:2: ( (otherlv_0= RULE_ID ) ) otherlv_1= 'con' ( (lv_inscriptos_2_0= RULE_INT ) ) otherlv_3= 'inscriptos'
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:915:2: ( (otherlv_0= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:916:1: (otherlv_0= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:916:1: (otherlv_0= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:917:3: otherlv_0= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaAsigRule());
            	        }
                    
            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateriaAsig1921); 

            		newLeafNode(otherlv_0, grammarAccess.getMateriaAsigAccess().getMateriaMateriaCrossReference_0_0()); 
            	

            }


            }

            otherlv_1=(Token)match(input,33,FOLLOW_33_in_ruleMateriaAsig1933); 

                	newLeafNode(otherlv_1, grammarAccess.getMateriaAsigAccess().getConKeyword_1());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:932:1: ( (lv_inscriptos_2_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:933:1: (lv_inscriptos_2_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:933:1: (lv_inscriptos_2_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:934:3: lv_inscriptos_2_0= RULE_INT
            {
            lv_inscriptos_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMateriaAsig1950); 

            			newLeafNode(lv_inscriptos_2_0, grammarAccess.getMateriaAsigAccess().getInscriptosINTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaAsigRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"inscriptos",
                    		lv_inscriptos_2_0, 
                    		"INT");
            	    

            }


            }

            otherlv_3=(Token)match(input,34,FOLLOW_34_in_ruleMateriaAsig1967); 

                	newLeafNode(otherlv_3, grammarAccess.getMateriaAsigAccess().getInscriptosKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMateriaAsig"


    // $ANTLR start "entryRuleDiaDeLaSemana"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:962:1: entryRuleDiaDeLaSemana returns [EObject current=null] : iv_ruleDiaDeLaSemana= ruleDiaDeLaSemana EOF ;
    public final EObject entryRuleDiaDeLaSemana() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDiaDeLaSemana = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:963:2: (iv_ruleDiaDeLaSemana= ruleDiaDeLaSemana EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:964:2: iv_ruleDiaDeLaSemana= ruleDiaDeLaSemana EOF
            {
             newCompositeNode(grammarAccess.getDiaDeLaSemanaRule()); 
            pushFollow(FOLLOW_ruleDiaDeLaSemana_in_entryRuleDiaDeLaSemana2003);
            iv_ruleDiaDeLaSemana=ruleDiaDeLaSemana();

            state._fsp--;

             current =iv_ruleDiaDeLaSemana; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDiaDeLaSemana2013); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDiaDeLaSemana"


    // $ANTLR start "ruleDiaDeLaSemana"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:971:1: ruleDiaDeLaSemana returns [EObject current=null] : (otherlv_0= 'dia:' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de' ( (lv_horaInicio_3_0= RULE_INT ) ) otherlv_4= 'a' ( (lv_horaFin_5_0= RULE_INT ) ) otherlv_6= 'se dicta:' ( (otherlv_7= RULE_ID ) ) otherlv_8= 'en:' ( (otherlv_9= RULE_ID ) ) ) ;
    public final EObject ruleDiaDeLaSemana() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token lv_horaInicio_3_0=null;
        Token otherlv_4=null;
        Token lv_horaFin_5_0=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        EObject lv_dia_1_0 = null;


         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:974:28: ( (otherlv_0= 'dia:' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de' ( (lv_horaInicio_3_0= RULE_INT ) ) otherlv_4= 'a' ( (lv_horaFin_5_0= RULE_INT ) ) otherlv_6= 'se dicta:' ( (otherlv_7= RULE_ID ) ) otherlv_8= 'en:' ( (otherlv_9= RULE_ID ) ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:975:1: (otherlv_0= 'dia:' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de' ( (lv_horaInicio_3_0= RULE_INT ) ) otherlv_4= 'a' ( (lv_horaFin_5_0= RULE_INT ) ) otherlv_6= 'se dicta:' ( (otherlv_7= RULE_ID ) ) otherlv_8= 'en:' ( (otherlv_9= RULE_ID ) ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:975:1: (otherlv_0= 'dia:' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de' ( (lv_horaInicio_3_0= RULE_INT ) ) otherlv_4= 'a' ( (lv_horaFin_5_0= RULE_INT ) ) otherlv_6= 'se dicta:' ( (otherlv_7= RULE_ID ) ) otherlv_8= 'en:' ( (otherlv_9= RULE_ID ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:975:3: otherlv_0= 'dia:' ( (lv_dia_1_0= ruleDIA ) ) otherlv_2= 'de' ( (lv_horaInicio_3_0= RULE_INT ) ) otherlv_4= 'a' ( (lv_horaFin_5_0= RULE_INT ) ) otherlv_6= 'se dicta:' ( (otherlv_7= RULE_ID ) ) otherlv_8= 'en:' ( (otherlv_9= RULE_ID ) )
            {
            otherlv_0=(Token)match(input,35,FOLLOW_35_in_ruleDiaDeLaSemana2050); 

                	newLeafNode(otherlv_0, grammarAccess.getDiaDeLaSemanaAccess().getDiaKeyword_0());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:979:1: ( (lv_dia_1_0= ruleDIA ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:980:1: (lv_dia_1_0= ruleDIA )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:980:1: (lv_dia_1_0= ruleDIA )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:981:3: lv_dia_1_0= ruleDIA
            {
             
            	        newCompositeNode(grammarAccess.getDiaDeLaSemanaAccess().getDiaDIAParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleDIA_in_ruleDiaDeLaSemana2071);
            lv_dia_1_0=ruleDIA();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getDiaDeLaSemanaRule());
            	        }
                   		set(
                   			current, 
                   			"dia",
                    		lv_dia_1_0, 
                    		"DIA");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_2=(Token)match(input,36,FOLLOW_36_in_ruleDiaDeLaSemana2083); 

                	newLeafNode(otherlv_2, grammarAccess.getDiaDeLaSemanaAccess().getDeKeyword_2());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1001:1: ( (lv_horaInicio_3_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1002:1: (lv_horaInicio_3_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1002:1: (lv_horaInicio_3_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1003:3: lv_horaInicio_3_0= RULE_INT
            {
            lv_horaInicio_3_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDiaDeLaSemana2100); 

            			newLeafNode(lv_horaInicio_3_0, grammarAccess.getDiaDeLaSemanaAccess().getHoraInicioINTTerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDiaDeLaSemanaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaInicio",
                    		lv_horaInicio_3_0, 
                    		"INT");
            	    

            }


            }

            otherlv_4=(Token)match(input,37,FOLLOW_37_in_ruleDiaDeLaSemana2117); 

                	newLeafNode(otherlv_4, grammarAccess.getDiaDeLaSemanaAccess().getAKeyword_4());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1023:1: ( (lv_horaFin_5_0= RULE_INT ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1024:1: (lv_horaFin_5_0= RULE_INT )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1024:1: (lv_horaFin_5_0= RULE_INT )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1025:3: lv_horaFin_5_0= RULE_INT
            {
            lv_horaFin_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDiaDeLaSemana2134); 

            			newLeafNode(lv_horaFin_5_0, grammarAccess.getDiaDeLaSemanaAccess().getHoraFinINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDiaDeLaSemanaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaFin",
                    		lv_horaFin_5_0, 
                    		"INT");
            	    

            }


            }

            otherlv_6=(Token)match(input,38,FOLLOW_38_in_ruleDiaDeLaSemana2151); 

                	newLeafNode(otherlv_6, grammarAccess.getDiaDeLaSemanaAccess().getSeDictaKeyword_6());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1045:1: ( (otherlv_7= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1046:1: (otherlv_7= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1046:1: (otherlv_7= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1047:3: otherlv_7= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getDiaDeLaSemanaRule());
            	        }
                    
            otherlv_7=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDiaDeLaSemana2171); 

            		newLeafNode(otherlv_7, grammarAccess.getDiaDeLaSemanaAccess().getMateriaMateriaCrossReference_7_0()); 
            	

            }


            }

            otherlv_8=(Token)match(input,39,FOLLOW_39_in_ruleDiaDeLaSemana2183); 

                	newLeafNode(otherlv_8, grammarAccess.getDiaDeLaSemanaAccess().getEnKeyword_8());
                
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1062:1: ( (otherlv_9= RULE_ID ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1063:1: (otherlv_9= RULE_ID )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1063:1: (otherlv_9= RULE_ID )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1064:3: otherlv_9= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getDiaDeLaSemanaRule());
            	        }
                    
            otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDiaDeLaSemana2203); 

            		newLeafNode(otherlv_9, grammarAccess.getDiaDeLaSemanaAccess().getAulaAulaCrossReference_9_0()); 
            	

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDiaDeLaSemana"


    // $ANTLR start "entryRuleDIA"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1083:1: entryRuleDIA returns [EObject current=null] : iv_ruleDIA= ruleDIA EOF ;
    public final EObject entryRuleDIA() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDIA = null;


        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1084:2: (iv_ruleDIA= ruleDIA EOF )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1085:2: iv_ruleDIA= ruleDIA EOF
            {
             newCompositeNode(grammarAccess.getDIARule()); 
            pushFollow(FOLLOW_ruleDIA_in_entryRuleDIA2239);
            iv_ruleDIA=ruleDIA();

            state._fsp--;

             current =iv_ruleDIA; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDIA2249); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDIA"


    // $ANTLR start "ruleDIA"
    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1092:1: ruleDIA returns [EObject current=null] : ( ( (lv_ID_0_0= 'Lunes' ) ) | ( (lv_ID_1_0= 'Martes' ) ) | ( (lv_ID_2_0= 'Miercoles' ) ) | ( (lv_ID_3_0= 'Jueves' ) ) | ( (lv_ID_4_0= 'Viernes' ) ) | ( (lv_ID_5_0= 'Sabado' ) ) ) ;
    public final EObject ruleDIA() throws RecognitionException {
        EObject current = null;

        Token lv_ID_0_0=null;
        Token lv_ID_1_0=null;
        Token lv_ID_2_0=null;
        Token lv_ID_3_0=null;
        Token lv_ID_4_0=null;
        Token lv_ID_5_0=null;

         enterRule(); 
            
        try {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1095:28: ( ( ( (lv_ID_0_0= 'Lunes' ) ) | ( (lv_ID_1_0= 'Martes' ) ) | ( (lv_ID_2_0= 'Miercoles' ) ) | ( (lv_ID_3_0= 'Jueves' ) ) | ( (lv_ID_4_0= 'Viernes' ) ) | ( (lv_ID_5_0= 'Sabado' ) ) ) )
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1096:1: ( ( (lv_ID_0_0= 'Lunes' ) ) | ( (lv_ID_1_0= 'Martes' ) ) | ( (lv_ID_2_0= 'Miercoles' ) ) | ( (lv_ID_3_0= 'Jueves' ) ) | ( (lv_ID_4_0= 'Viernes' ) ) | ( (lv_ID_5_0= 'Sabado' ) ) )
            {
            // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1096:1: ( ( (lv_ID_0_0= 'Lunes' ) ) | ( (lv_ID_1_0= 'Martes' ) ) | ( (lv_ID_2_0= 'Miercoles' ) ) | ( (lv_ID_3_0= 'Jueves' ) ) | ( (lv_ID_4_0= 'Viernes' ) ) | ( (lv_ID_5_0= 'Sabado' ) ) )
            int alt12=6;
            switch ( input.LA(1) ) {
            case 40:
                {
                alt12=1;
                }
                break;
            case 41:
                {
                alt12=2;
                }
                break;
            case 42:
                {
                alt12=3;
                }
                break;
            case 43:
                {
                alt12=4;
                }
                break;
            case 44:
                {
                alt12=5;
                }
                break;
            case 45:
                {
                alt12=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }

            switch (alt12) {
                case 1 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1096:2: ( (lv_ID_0_0= 'Lunes' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1096:2: ( (lv_ID_0_0= 'Lunes' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1097:1: (lv_ID_0_0= 'Lunes' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1097:1: (lv_ID_0_0= 'Lunes' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1098:3: lv_ID_0_0= 'Lunes'
                    {
                    lv_ID_0_0=(Token)match(input,40,FOLLOW_40_in_ruleDIA2292); 

                            newLeafNode(lv_ID_0_0, grammarAccess.getDIAAccess().getIDLunesKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_0_0, "Lunes");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1112:6: ( (lv_ID_1_0= 'Martes' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1112:6: ( (lv_ID_1_0= 'Martes' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1113:1: (lv_ID_1_0= 'Martes' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1113:1: (lv_ID_1_0= 'Martes' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1114:3: lv_ID_1_0= 'Martes'
                    {
                    lv_ID_1_0=(Token)match(input,41,FOLLOW_41_in_ruleDIA2329); 

                            newLeafNode(lv_ID_1_0, grammarAccess.getDIAAccess().getIDMartesKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_1_0, "Martes");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1128:6: ( (lv_ID_2_0= 'Miercoles' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1128:6: ( (lv_ID_2_0= 'Miercoles' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1129:1: (lv_ID_2_0= 'Miercoles' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1129:1: (lv_ID_2_0= 'Miercoles' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1130:3: lv_ID_2_0= 'Miercoles'
                    {
                    lv_ID_2_0=(Token)match(input,42,FOLLOW_42_in_ruleDIA2366); 

                            newLeafNode(lv_ID_2_0, grammarAccess.getDIAAccess().getIDMiercolesKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_2_0, "Miercoles");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1144:6: ( (lv_ID_3_0= 'Jueves' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1144:6: ( (lv_ID_3_0= 'Jueves' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1145:1: (lv_ID_3_0= 'Jueves' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1145:1: (lv_ID_3_0= 'Jueves' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1146:3: lv_ID_3_0= 'Jueves'
                    {
                    lv_ID_3_0=(Token)match(input,43,FOLLOW_43_in_ruleDIA2403); 

                            newLeafNode(lv_ID_3_0, grammarAccess.getDIAAccess().getIDJuevesKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_3_0, "Jueves");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1160:6: ( (lv_ID_4_0= 'Viernes' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1160:6: ( (lv_ID_4_0= 'Viernes' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1161:1: (lv_ID_4_0= 'Viernes' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1161:1: (lv_ID_4_0= 'Viernes' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1162:3: lv_ID_4_0= 'Viernes'
                    {
                    lv_ID_4_0=(Token)match(input,44,FOLLOW_44_in_ruleDIA2440); 

                            newLeafNode(lv_ID_4_0, grammarAccess.getDIAAccess().getIDViernesKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_4_0, "Viernes");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1176:6: ( (lv_ID_5_0= 'Sabado' ) )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1176:6: ( (lv_ID_5_0= 'Sabado' ) )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1177:1: (lv_ID_5_0= 'Sabado' )
                    {
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1177:1: (lv_ID_5_0= 'Sabado' )
                    // ../planificacionDeCursada/src-gen/org/fernando/parser/antlr/internal/InternalPlanificacionDeCursada.g:1178:3: lv_ID_5_0= 'Sabado'
                    {
                    lv_ID_5_0=(Token)match(input,45,FOLLOW_45_in_ruleDIA2477); 

                            newLeafNode(lv_ID_5_0, grammarAccess.getDIAAccess().getIDSabadoKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDIARule());
                    	        }
                           		setWithLastConsumed(current, "ID", lv_ID_5_0, "Sabado");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDIA"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleAsignacion_in_entryRuleAsignacion75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAsignacion85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleProfesor_in_ruleAsignacion131 = new BitSet(new long[]{0x0000000010406800L});
    public static final BitSet FOLLOW_ruleRecurso_in_ruleAsignacion153 = new BitSet(new long[]{0x0000000010404800L});
    public static final BitSet FOLLOW_ruleAula_in_ruleAsignacion175 = new BitSet(new long[]{0x0000000010404800L});
    public static final BitSet FOLLOW_ruleMateria_in_ruleAsignacion197 = new BitSet(new long[]{0x0000000010404800L});
    public static final BitSet FOLLOW_rulePlanificacion_in_ruleAsignacion219 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRecurso_in_entryRuleRecurso255 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRecurso265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleRecurso302 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleRecurso319 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_12_in_ruleRecurso336 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleProfesor_in_entryRuleProfesor372 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleProfesor382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_ruleProfesor419 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleProfesor436 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleProfesor453 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleProfesor470 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleProfesor487 = new BitSet(new long[]{0x0000000000380000L});
    public static final BitSet FOLLOW_ruleDEDICACION_in_ruleProfesor508 = new BitSet(new long[]{0x0000000000011000L});
    public static final BitSet FOLLOW_ruleDisponibilidadProf_in_ruleProfesor529 = new BitSet(new long[]{0x0000000000011000L});
    public static final BitSet FOLLOW_12_in_ruleProfesor542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDisponibilidadProf_in_entryRuleDisponibilidadProf578 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDisponibilidadProf588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_ruleDisponibilidadProf625 = new BitSet(new long[]{0x00003F0000000000L});
    public static final BitSet FOLLOW_ruleDIA_in_ruleDisponibilidadProf646 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_17_in_ruleDisponibilidadProf658 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDisponibilidadProf675 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_18_in_ruleDisponibilidadProf692 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDisponibilidadProf709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDEDICACION_in_entryRuleDEDICACION750 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDEDICACION760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimple_in_ruleDEDICACION807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSemi_in_ruleDEDICACION834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExclusiva_in_ruleDEDICACION861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimple_in_entryRuleSimple896 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSimple906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_ruleSimple948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSemi_in_entryRuleSemi996 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSemi1006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_ruleSemi1048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExclusiva_in_entryRuleExclusiva1096 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExclusiva1106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleExclusiva1148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMateria_in_entryRuleMateria1196 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMateria1206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_ruleMateria1243 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateria1260 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMateria1277 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateria1297 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleMateria1309 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMateria1326 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_25_in_ruleMateria1343 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMateria1360 = new BitSet(new long[]{0x0000000004001000L});
    public static final BitSet FOLLOW_26_in_ruleMateria1378 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateria1398 = new BitSet(new long[]{0x0000000008001000L});
    public static final BitSet FOLLOW_27_in_ruleMateria1411 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateria1431 = new BitSet(new long[]{0x0000000008001000L});
    public static final BitSet FOLLOW_12_in_ruleMateria1447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAula_in_entryRuleAula1483 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAula1493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleAula1530 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAula1547 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_29_in_ruleAula1564 = new BitSet(new long[]{0x0000000040000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAula1585 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_27_in_ruleAula1597 = new BitSet(new long[]{0x0000000040000010L});
    public static final BitSet FOLLOW_30_in_ruleAula1611 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleAula1628 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_31_in_ruleAula1645 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_12_in_ruleAula1657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlanificacion_in_entryRulePlanificacion1693 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlanificacion1703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rulePlanificacion1740 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePlanificacion1757 = new BitSet(new long[]{0x0000000100000000L});
    public static final BitSet FOLLOW_32_in_rulePlanificacion1774 = new BitSet(new long[]{0x0000000800001010L});
    public static final BitSet FOLLOW_ruleMateriaAsig_in_rulePlanificacion1795 = new BitSet(new long[]{0x0000000800001010L});
    public static final BitSet FOLLOW_ruleDiaDeLaSemana_in_rulePlanificacion1817 = new BitSet(new long[]{0x0000000800001000L});
    public static final BitSet FOLLOW_12_in_rulePlanificacion1830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMateriaAsig_in_entryRuleMateriaAsig1866 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMateriaAsig1876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateriaAsig1921 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMateriaAsig1933 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMateriaAsig1950 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_34_in_ruleMateriaAsig1967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDiaDeLaSemana_in_entryRuleDiaDeLaSemana2003 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDiaDeLaSemana2013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleDiaDeLaSemana2050 = new BitSet(new long[]{0x00003F0000000000L});
    public static final BitSet FOLLOW_ruleDIA_in_ruleDiaDeLaSemana2071 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_36_in_ruleDiaDeLaSemana2083 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDiaDeLaSemana2100 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_37_in_ruleDiaDeLaSemana2117 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDiaDeLaSemana2134 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_38_in_ruleDiaDeLaSemana2151 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleDiaDeLaSemana2171 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_39_in_ruleDiaDeLaSemana2183 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleDiaDeLaSemana2203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDIA_in_entryRuleDIA2239 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDIA2249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleDIA2292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleDIA2329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleDIA2366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleDIA2403 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_ruleDIA2440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleDIA2477 = new BitSet(new long[]{0x0000000000000002L});

}